package com.qst.order.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qst.order.domain.OrderPay;
import com.qst.order.service.OrderPayService;
import com.qst.order.utils.JwtUtil;
import com.qst.order.utils.Result;
import lombok.RequiredArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;

@RestController
@RequestMapping("/api/orderPay")
@RequiredArgsConstructor

public class OrderPayController {

    private final OrderPayService orderPayService;
    private final JwtUtil jwtUtil;

    @GetMapping("/flows")
    public Result<IPage<OrderPay>> getAccountFlows(
            @RequestParam(defaultValue = "1") Integer page, // 默认第1页
            @RequestParam(defaultValue = "10") Integer pageSize, // 默认每页10条
            @RequestHeader("Authorization")String token,
            @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime startDate, // 开始时间（可选）
            @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime endDate) { // 结束时间（可选）

        // 1. 获取当前登录用户ID（必须，防止越权查询）
        Integer userId = Integer.valueOf(jwtUtil.getClaim(token, "userId"));


        // 2. 调用Service查询流水
        IPage<OrderPay> flowPage = null;
        try {
            flowPage = orderPayService.queryUserFlows(
                    userId, page, pageSize, startDate, endDate
            );
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

        // 3. 返回结果（前端需要records和total字段）
        return Result.success(flowPage);
    }

}
